/*
题目：链表中的下一个更大节点
给定一个长度为 n 的链表 head

对于列表中的每个节点，查找下一个 更大节点 的值。也就是说，对于每个节点，找到它旁边的第一个节点的值，这个节点的值 严格大于 它的值。

返回一个整数数组 answer ，其中 answer[i] 是第 i 个节点的下一个更大的节点的值。如果第 i 个节点没有下一个更大的节点，设置 answer[i] = 0 。
 */
public class NextLargerNodes {
    public int[] nextLargerNodes(ListNode head) {
        int len = 0;
        ListNode tool = head;
        while (tool != null) {
            len++;
            tool = tool.next;
        }
        int[] ans = new int[len];
        int i = 0;
        for (tool = head; i < len; i++) {
            ListNode temp = tool.next;
            for (; temp != null; temp = temp.next) {
                if (temp.val > tool.val) {
                    ans[i] = temp.val;
                    break;
                }
                ans[i] = 0;
            }
            tool = tool.next;
        }
        return ans;
    }
}
